home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / GRAPHICS / FADERS.ZIP / FADECOOL.ASM < prev    next >
Encoding:
Assembly Source File  |  1995-08-25  |  2.5 KB  |  150 lines

  1. public FadeOut
  2. public FadeIn
  3. code segment 'CODE' PUBLIC
  4.         assume cs:code
  5.  
  6. palette db 0,0,0,0,0,42,60,63,51,0,42,42,42,0,0,42,0,42,42,42,0,42,42,42,0,0,21,0,0,63,0,42
  7.         db 21,0,42,63,42,0,21,42,0,63,42,42,21,42,42,63,0,21,0,0,21,42,0,63,0,0,63,42,42,21,0,42
  8.         db 21,42,42,63,0,42,63,42,0,21,21,0,21,63,0,63,21,0,63,63,42,21,21,42,21,63,42,63,21,42,63,63
  9.     db 21,0,0,21,0,42,21,42,0,21,42,42,63,0,0,63,0,42,63,42,0,63,42,42,21,0,21,21,0,63,21,42,21
  10.         db 21,42,63,63,0,21,63,0,63,63,42,21,63,42,63,21,21,0,21,21,42,21,63,0,21,63,42,63,21,0,63
  11.         db 21,42,63,63,0,63,63,42,21,21,21,21,21,63,21,63,21,21,63,63,63,21,21,63,21,63,63,63,21,63
  12.         db 63,63
  13. pal_buf1 db 384 dup(0)
  14. pal_buf2 db 384 dup(0)
  15.  
  16. Fadeout proc far
  17. push bp
  18. mov bp,sp
  19. push ds
  20. push di
  21. push si
  22.  
  23.     push bx
  24.     mov bx,192
  25. loopie:
  26.     mov dl,[byte ptr palette+bx]
  27.     mov [byte ptr pal_buf1+bx],dl
  28.     dec bx
  29.     jnz loopie
  30.     pop bx
  31.  
  32.        mov cx,31
  33. fadeoutl:
  34.        push cx
  35.            mov bx,0
  36. @@fade2:   cmp [pal_buf1+bx],0
  37.            je no_dec
  38.            cmp [pal_buf1+bx],1
  39.            je @@f2
  40.            dec [pal_buf1+bx]
  41. @@f2:      dec [pal_buf1+bx]        
  42. no_dec:    inc bx
  43.            cmp bx,192
  44.            jne @@fade2
  45.     call setpal
  46.     pop cx
  47. loop    fadeoutl
  48.  
  49. pop si
  50. pop di
  51. pop ds
  52. pop bp
  53.            retF
  54. endp       fadeout
  55.  
  56. FadeIn proc far
  57. push bp
  58. mov bp,sp
  59. push ds
  60. push di
  61. push si
  62.  
  63.     push bx
  64.     mov bx,384
  65. nogeens:
  66.     mov dl,[byte ptr pal_buf2+bx]
  67.     mov [byte ptr pal_buf1+bx],dl
  68.     dec bx
  69.     jnz nogeens
  70.     pop bx
  71.  
  72.     mov cx,31
  73. fadeinl:
  74.     push cx
  75.     mov cx,192
  76.     mov bx,0
  77. bl2:
  78.     mov dl,[palette+bx]
  79.     add [pal_buf1+192+bx],dl
  80. bl3:    cmp [byte ptr pal_buf1+192+bx],32
  81.     jb @@bl7
  82.     inc [byte ptr pal_buf1+bx]
  83.     sub [byte ptr pal_buf1+192+bx],32
  84.     jmp bl3
  85. @@bl7:
  86.     inc bx
  87.     loop bl2
  88.     call setpal
  89.     pop cx
  90.     dec cx
  91.     jnz fadeinl
  92. pop si
  93. pop di
  94. pop ds
  95. pop bp
  96.  
  97.                RetF
  98. FadeIn         ENDP
  99.  
  100. Setpal proc
  101.         mov dx, 03DAh              
  102.     v1:
  103.         in    al, dx
  104.         test   al,08h
  105.         jnz    v1
  106.     v2:
  107.         in     al, dx
  108.         test   al,08h
  109.         jz     v2
  110.  
  111.         mov dx,3c8h
  112.         mov ax,seg pal_buf1
  113.         mov ds,ax
  114.         mov si,offset pal_buf1
  115.         mov cx,192
  116.         xor al,al
  117.         out dx,al
  118.         inc dx      
  119.     cld
  120. @l1:    lodsb      ;Especially for the owners of 8088/8086
  121.         out dx,al
  122.         loop @l1
  123.     ret
  124. Setpal  endp
  125.  
  126. code    ends
  127.         end
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.